library(haven)  # read_sav() to read spss files
library(stringr)  # str_detect()
library(ggplot2)
theme_set(theme_minimal(base_family='NanumGothic'))  # ggplot2에서 한글깨짐 방지
library(MatchIt)  # matchit() for propensity score matching
library(cobalt)  # love.plot() for assessing balance


데이터 출처에서 설문지, 조사 원자료, 코딩북을 활용하였습니다.


DATA = read_sav("data.sav")
DATA



상관분석(Correlation analysis)


우선 스포츠 참여여부(스포츠르 한번 이상으로 참여하였는지)와 스포츠 여가활동 희망여부(스포츠를 여가활동으로 희망하는지)간의 상관관계를 파악하고자 합니다.


## Data preprocessing
# q1_D: 문1.한 번 이상 참여한 여가활동 - D. 스포츠참여활동(복수응답); 99: 없음
# q11_3_D: 문11.평일에 희망하는 여가활동 -D. 스포츠 참여 활동; 98: 없음, 99: 모름/무응답
# q12_3_D: 문12.휴일에 희망하는 여가활동 -D. 스포츠 참여 활동; 98: 없음, 99: 모름/무응답
df = DATA[, c("ID", "q1_D", "q11_3_D", "q12_3_D")]
# NA to 1
df[is.na(df)] = 1
# 1: 참여/희망, 0: 그렇지 않음
df$have = ifelse(df$q1_D == 99, 0, 1)  # 스포츠를 참여해봄
df$q11_3_D = ifelse(df$q11_3_D == 99 | df$q11_3_D == 98, 0, 1)
df$q12_3_D = ifelse(df$q12_3_D == 99 | df$q12_3_D == 98, 0, 1)
# 평일, 주말 합치기
df$would = ifelse(df$q11_3_D + df$q12_3_D == 0, 0, 1)  # 스포츠를 희망함
# 필요한 컬럼만
df = df[,c("ID", "have", "would")]
# Create a data frame representing the 2x2 table
tab = table(df$have, df$would)
# Convert the table to a data frame
tab_df = as.data.frame(as.table(tab))
# Rename the columns
names(tab_df) = c("have", "would", "Frequency")

# Create a tile plot using ggplot2
ggplot(tab_df, aes(x = factor(have), y = factor(would), fill = Frequency)) +
  geom_tile() +
  geom_text(aes(label = sprintf("%d", Frequency)), vjust = 1) +
  scale_fill_gradient(low = "beige", high = "brown") +
  labs(title = "표1: 2X2 Table of Two Binary Variables",
       x = "스포츠 여가활동 희망여부",
       y = "스포츠 참여여부",
       fill = "Frequency") +
  theme(plot.title = element_text(hjust = 0.5))


표1을 보면 두 이진변수간에 양의 상관관계가 있음을 짐작해볼 수 있습니다.


cor.test(df$have, df$would)

    Pearson's product-moment correlation

data:  df$have and df$would
t = 64.611, df = 10047, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.5278288 0.5554578
sample estimates:
      cor 
0.5417897 


위 결과는 피어슨 상관계수 검정을 통해 스포츠 참여여부(have)와 스포츠 여가활동 희망여부(would)간의 상관관계를 테스트한 것입니다. 검정 결과, 유의수준 5%에서 두 변수 사이에 유의미한 상관관계가 있다는 것을 확인할 수 있습니다. 상관계수의 값이 0.542로, 이는 두 변수가 양의 상관관계를 가지고 있다는 것을 의미합니다. 즉, 스포츠에 참여한 사람들이 스포츠를 여가활동으로 희망할 가능성이 더 높다는 것을 의미합니다.

하지만 상관관계만으로는 인과관계를 설명할 수 없습니다. 인과추론을 위해서는 더 정밀한 통계적 방법이 필요합니다. 상관관계는 두 변수 사이의 관계의 방향과 강도만을 나타내기 때문에, 인과관계의 존재 여부와 그 방향을 확정하기 위해서는 실험 설계나 매칭, 계량적인 causal inference 방법 등이 사용되어야 합니다.



인과추론(Causal inference)


스포츠 참여여부와 스포츠 여가활동 희망여부간의 양의 상관관계가 파악이 되어, 이를 기반으로 인과추론을 하고자 합니다. 연구의 목적은 스포츠 참여를 한 여부가 스포츠 여가활동 희망하는 여부로 인과적으로 이어지는지 알아보는 것입니다.

이를 위해서 propensity score matching(PSM) 방법으로 인과추론을 하려고 합니다. 이는 인과관계를 추정하는 데 널리 사용되는 방법 중 하나로, 관찰된 데이터에서 인과효과를 추정하려는 시도를 설명합니다. 이 방법의 핵심은, control 그룹(스포츠를 참여하지 않은 이들)과 treated 그룹(스포츠를 참여한 이들)간의 혼동변수(confounding variable) 차이를 줄이는 데 사용되며, 이는 인과추론을 왜곡할 수 있는 혼동변수의 영향을 제거하는 데 도움이 됩니다.


다시 말해, 스포츠 참여여부와 스포츠 여가활동 희망여부간의 인과관계를 추론하려면, 두 변수 간의 관계에 영향을 줄 수 있는 혼동변수들을 고려하여 매칭을 해야합니다. 해당 연구 목표와 관련하여 다음 변수들을 혼동변수들로 고려해볼 수 있습니다:

## Data preprocessing
# (응답자의 인구통계)
# q39: 최종학력
# q40: 혼인상태
# q41: 만 나이
# q43: 가구주 여부
# q43_2: 성별
# q44_1: 장애등록 여부
# (경제적 환경)
# q45: 지난 1주간 경제활동 여부
# q49_1: 월 평균 소득
# (지역 및 지역 규모)
# DM9: 지역 규모
# DM10: 권역
# (일/학업과 여가의 균형)
# q28: 일(학업)과 여가의 균형
# (본인의 건강상태 인식)
# q34: 본인의 건강상태 인식

df2 = DATA[, c("ID", "q39", "q40", "q41", "q43", "q43_2", "q44_1", "q45", "q49_1", "DM9", "DM10", "q28", "q34")]
df3 = merge(df, df2, by = "ID")  # Joining two dataframes on a matching ID
df3 = df3[, -1]  # No need for "ID" column anymore
df3[] = lapply(df3, as.numeric)  # because the data was in spss form
df3$q39 = ifelse(df3$q39 <= 4, 0, 1)  # 고졸이하: 0 / 대졸이상: 1
df3$q40 = ifelse(df3$q40 == 1, 0, 1)  # 미혼: 0 / 기혼, 사별, 이혼 등: 1
df3$q44_1 = ifelse(df3$q44_1 == 1, 0, 1)  # 없음: 0, 장애: 1
df3$q49_1 = ifelse(df3$q49_1 <= 3, 0, 1)  # 200만 미만: 0, 200만 이상: 1
df3$q34 = ifelse(df3$q34 <= 3, 0, ifelse(df3$q34 == 4, 1, 2))  # 보통 이하: 0, 보통: 1, 보통 이상: 2
df3$q28 = ifelse(df3$q28 <= 3, 0, ifelse(df3$q28 == 4, 1, 2))  # 균형 이하: 0, 균형: 1, 균형 이상: 2
# Convert all columns except the excluded one to factors
df3[!colnames(df3) %in% c("q41")] = lapply(df3[!colnames(df3) %in% c("q41")], as.factor)
df3
set.seed(0)

## Estimate Propensity Scores:
# We first estimate the propensity scores for the "have" variable, based on the covariates we want to control for. This involves fitting a logistic regression model predicting "have" from the covariates.

## Matching
# matchit() will perform nearest neighbor matching, but there are many other methods available in MatchIt. The result of the match will be stored in m.out.

all_vars = setdiff(names(df3), c("have", "would"))
formula = as.formula(paste("have ~", paste(all_vars, collapse = " + ")))
m.out = matchit(formula, data = df3, method = "optimal")
Warning: Fewer control units than treated units; not all treated units will get a match.
## Assessing balance
# Before conducting the causal inference analysis, we should assess whether matching has improved the balance of the covariates across the treated and control groups.
love.plot(m.out, abs = TRUE, binary = "std", threshold = 0.15, limits = c(0, 1), position = "top", drop.distance = TRUE)


Propensity Score Matching(PSM)에서 균형 평가(assessing balance)를 하는 목적은 처리 그룹과 대조 그룹 간의 혼동변수가 비슷하게 분포되어 있는지 확인하기 위함입니다. 이는 관찰 연구에서 처리 효과를 추정할 때 혼동변수로 인한 편향을 줄이기 위한 중요한 단계입니다.

균형 평가에서 확인해야 할 주요 요소는 다음과 같습니다:

매칭이 잘 되었다는 것은 처리 그룹과 대조 그룹 간의 공변량이 비슷하게 분포되어 있으며, 혼동 효과를 최소화하여 처리의 인과 효과를 보다 정확하게 추정할 수 있다는 것을 의미합니다.

위 그림을 보면 조정 후 절반 정도만 혼동변수가 임계값 내에 있고, 이는 균형이 이루어졌다는 증거는 되지 못합니다.


## Causal inference
# After matching, we can analyze the effect of "have" on "would" by fitting a model to the matched data.

matched_data = match.data(m.out)
causal_model = glm(would ~ have, data = matched_data, family = binomial)
summary(causal_model)

Call:
glm(formula = would ~ have, family = binomial, data = matched_data)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.23199    0.02851  -8.137 4.04e-16 ***
have1        3.00607    0.06662  45.121  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 12324.1  on 9975  degrees of freedom
Residual deviance:  9077.7  on 9974  degrees of freedom
AIC: 9081.7

Number of Fisher Scoring iterations: 5




결론


요약하면, 결과는 스포츠 참여여부스포츠 여가활동 희망여부 사이의 강한 연관성을 나타났지만, 매칭 과정이 관련 혼동 변수를 모두 균형시키는 데 성공하지 못하였습니다. 만약, 인과추론을 위한 가정이 유효하다면 인과효과로 해석될 수 있습니다.


Propensity score matching을 사용한 상황에서 혼동 변수를 모두 균형시키지 못했다면, 다음과 같은 조치를 취해 볼 수 있습니다:



LS0tCnRpdGxlOiAi7J246rO87LaU66GgIgpzdWJ0aXRsZTogIuyKpO2PrOy4oCDssLjsl6wg7Jes67aA7JmAIOyKpO2PrOy4oOulvCDst6jrr7jtmZzrj5nsnLzroZwg7Z2s66edIOyXrOu2gOqwhOydmCDqtIDqs4QiCmF1dGhvcjogIuydtOyerOyaqSIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHllcwogICAgY29kZV9mb2xkaW5nOiAibm9uZSIKLS0tCgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpoMS50aXRsZSB7CiAgZm9udC1zaXplOiAzMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQpoMy5zdWJ0aXRsZSB7CiAgZm9udC1zaXplOiAyMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQpoNC5hdXRob3IgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLwogICAgZm9udC1zaXplOiAxOHB4OwogIHRleHQtYWxpZ246IHJpZ2h0Owp9CmJvZHl7CiAgIGZvbnQtc2l6ZTogMTdweDsgICMgYm9keSBpcyBmb3Igbm9ybWFsIHRleHQKfQp0ZHsKICAgZm9udC1zaXplOiAxMnB4OyAgIyB0ZCBpcyBmb3IgdGFibGUgZGF0YQp9Cjwvc3R5bGU+CgpgYGB7cn0KbGlicmFyeShoYXZlbikgICMgcmVhZF9zYXYoKSB0byByZWFkIHNwc3MgZmlsZXMKbGlicmFyeShzdHJpbmdyKSAgIyBzdHJfZGV0ZWN0KCkKbGlicmFyeShnZ3Bsb3QyKQp0aGVtZV9zZXQodGhlbWVfbWluaW1hbChiYXNlX2ZhbWlseT0nTmFudW1Hb3RoaWMnKSkgICMgZ2dwbG90MuyXkOyEnCDtlZzquIDquajsp5Ag67Cp7KeACmxpYnJhcnkoTWF0Y2hJdCkgICMgbWF0Y2hpdCgpIGZvciBwcm9wZW5zaXR5IHNjb3JlIG1hdGNoaW5nCmxpYnJhcnkoY29iYWx0KSAgIyBsb3ZlLnBsb3QoKSBmb3IgYXNzZXNzaW5nIGJhbGFuY2UKYGBgCgpcCgpb642w7J207YSwIOy2nOyymF0oaHR0cHM6Ly9wb2xpY3lkYi5rY3RpLnJlLmtyLyMvc3VydmV5TGVpc3VyZTQ/YmJzdHlwZWNkPTMwMDMwMTMmcG9zdHN0YXRjZD0xNDAwKeyXkOyEnCDshKTrrLjsp4AsIOyhsOyCrCDsm5DsnpDro4wsIOy9lOuUqeu2geydhCDtmZzsmqntlZjsmIDsirXri4jri6QuCgpcCgpgYGB7cn0KREFUQSA9IHJlYWRfc2F2KCJkYXRhLnNhdiIpCkRBVEEKYGBgCgpcClwKCiMjIOyDgeq0gOu2hOyEnShDb3JyZWxhdGlvbiBhbmFseXNpcykKClwKCuyasOyEoCDsiqTtj6zsuKAg7LC47Jes7Jes67aAKOyKpO2PrOy4oOultCDtlZzrsogg7J207IOB7Jy866GcIOywuOyXrO2VmOyYgOuKlOyngCnsmYAg7Iqk7Y+s7LigIOyXrOqwgO2ZnOuPmSDtnazrp53sl6zrtoAo7Iqk7Y+s7Lig66W8IOyXrOqwgO2ZnOuPmeycvOuhnCDtnazrp53tlZjripTsp4Ap6rCE7J2YIOyDgeq0gOq0gOqzhOulvCDtjIzslYXtlZjqs6DsnpAg7ZWp64uI64ukLgoKXAoKYGBge3J9CiMjIERhdGEgcHJlcHJvY2Vzc2luZwojIHExX0Q6IOusuDEu7ZWcIOuyiCDsnbTsg4Eg7LC47Jes7ZWcIOyXrOqwgO2ZnOuPmSAtIEQuIOyKpO2PrOy4oOywuOyXrO2ZnOuPmSjrs7XsiJjsnZHri7UpOyA5OTog7JeG7J2MCiMgcTExXzNfRDog66y4MTEu7Y+J7J287JeQIO2drOunne2VmOuKlCDsl6zqsIDtmZzrj5kgLUQuIOyKpO2PrOy4oCDssLjsl6wg7Zmc64+ZOyA5ODog7JeG7J2MLCA5OTog66qo66aEL+ustOydkeuLtQojIHExMl8zX0Q6IOusuDEyLu2ctOydvOyXkCDtnazrp53tlZjripQg7Jes6rCA7Zmc64+ZIC1ELiDsiqTtj6zsuKAg7LC47JesIO2ZnOuPmTsgOTg6IOyXhuydjCwgOTk6IOuqqOumhC/rrLTsnZHri7UKZGYgPSBEQVRBWywgYygiSUQiLCAicTFfRCIsICJxMTFfM19EIiwgInExMl8zX0QiKV0KIyBOQSB0byAxCmRmW2lzLm5hKGRmKV0gPSAxCiMgMTog7LC47JesL+2drOunnSwgMDog6re466CH7KeAIOyViuydjApkZiRoYXZlID0gaWZlbHNlKGRmJHExX0QgPT0gOTksIDAsIDEpICAjIOyKpO2PrOy4oOulvCDssLjsl6ztlbTrtIQKZGYkcTExXzNfRCA9IGlmZWxzZShkZiRxMTFfM19EID09IDk5IHwgZGYkcTExXzNfRCA9PSA5OCwgMCwgMSkKZGYkcTEyXzNfRCA9IGlmZWxzZShkZiRxMTJfM19EID09IDk5IHwgZGYkcTEyXzNfRCA9PSA5OCwgMCwgMSkKIyDtj4nsnbwsIOyjvOunkCDtlansuZjquLAKZGYkd291bGQgPSBpZmVsc2UoZGYkcTExXzNfRCArIGRmJHExMl8zX0QgPT0gMCwgMCwgMSkgICMg7Iqk7Y+s7Lig66W8IO2drOunne2VqAojIO2VhOyalO2VnCDsu6zrn7zrp4wKZGYgPSBkZlssYygiSUQiLCAiaGF2ZSIsICJ3b3VsZCIpXQpgYGAKCmBgYHtyfQojIENyZWF0ZSBhIGRhdGEgZnJhbWUgcmVwcmVzZW50aW5nIHRoZSAyeDIgdGFibGUKdGFiID0gdGFibGUoZGYkaGF2ZSwgZGYkd291bGQpCiMgQ29udmVydCB0aGUgdGFibGUgdG8gYSBkYXRhIGZyYW1lCnRhYl9kZiA9IGFzLmRhdGEuZnJhbWUoYXMudGFibGUodGFiKSkKIyBSZW5hbWUgdGhlIGNvbHVtbnMKbmFtZXModGFiX2RmKSA9IGMoImhhdmUiLCAid291bGQiLCAiRnJlcXVlbmN5IikKCiMgQ3JlYXRlIGEgdGlsZSBwbG90IHVzaW5nIGdncGxvdDIKZ2dwbG90KHRhYl9kZiwgYWVzKHggPSBmYWN0b3IoaGF2ZSksIHkgPSBmYWN0b3Iod291bGQpLCBmaWxsID0gRnJlcXVlbmN5KSkgKwogIGdlb21fdGlsZSgpICsKICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3ByaW50ZigiJWQiLCBGcmVxdWVuY3kpKSwgdmp1c3QgPSAxKSArCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiYmVpZ2UiLCBoaWdoID0gImJyb3duIikgKwogIGxhYnModGl0bGUgPSAi7ZGcMTogMlgyIFRhYmxlIG9mIFR3byBCaW5hcnkgVmFyaWFibGVzIiwKICAgICAgIHggPSAi7Iqk7Y+s7LigIOyXrOqwgO2ZnOuPmSDtnazrp53sl6zrtoAiLAogICAgICAgeSA9ICLsiqTtj6zsuKAg7LC47Jes7Jes67aAIiwKICAgICAgIGZpbGwgPSAiRnJlcXVlbmN5IikgKwogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQpgYGAKClwKCu2RnDHsnYQg67O066m0IOuRkCDsnbTsp4Trs4DsiJjqsITsl5Ag7JaR7J2YIOyDgeq0gOq0gOqzhOqwgCDsnojsnYzsnYQg7KeQ7J6R7ZW067O8IOyImCDsnojsirXri4jri6QuCgpcCgpgYGB7cn0KY29yLnRlc3QoZGYkaGF2ZSwgZGYkd291bGQpCmBgYAoKXAoK7JyEIOqysOqzvOuKlCDtlLzslrTsiqgg7IOB6rSA6rOE7IiYIOqygOygleydhCDthrXtlbQg7Iqk7Y+s7LigIOywuOyXrOyXrOu2gChoYXZlKeyZgCDsiqTtj6zsuKAg7Jes6rCA7Zmc64+ZIO2drOunneyXrOu2gCh3b3VsZCnqsITsnZgg7IOB6rSA6rSA6rOE66W8IO2FjOyKpO2KuO2VnCDqsoPsnoXri4jri6QuIOqygOyglSDqsrDqs7wsIOycoOydmOyImOykgCA1JeyXkOyEnCDrkZAg67OA7IiYIOyCrOydtOyXkCDsnKDsnZjrr7jtlZwg7IOB6rSA6rSA6rOE6rCAIOyeiOuLpOuKlCDqsoPsnYQg7ZmV7J247ZWgIOyImCDsnojsirXri4jri6QuIOyDgeq0gOqzhOyImOydmCDqsJLsnbQgMC41NDLroZwsIOydtOuKlCDrkZAg67OA7IiY6rCAIOyWkeydmCDsg4HqtIDqtIDqs4Trpbwg6rCA7KeA6rOgIOyeiOuLpOuKlCDqsoPsnYQg7J2Y66+47ZWp64uI64ukLiDspoksIOyKpO2PrOy4oOyXkCDssLjsl6ztlZwg7IKs656M65Ok7J20IOyKpO2PrOy4oOulvCDsl6zqsIDtmZzrj5nsnLzroZwg7Z2s66ed7ZWgIOqwgOuKpeyEseydtCDrjZQg64aS64uk64qUIOqyg+ydhCDsnZjrr7jtlanri4jri6QuCgrtlZjsp4Drp4wg7IOB6rSA6rSA6rOE66eM7Jy866Gc64qUIOyduOqzvOq0gOqzhOulvCDshKTrqoXtlaAg7IiYIOyXhuyKteuLiOuLpC4g7J246rO87LaU66Gg7J2EIOychO2VtOyEnOuKlCDrjZQg7KCV67CA7ZWcIO2GteqzhOyggSDrsKnrspXsnbQg7ZWE7JqU7ZWp64uI64ukLiDsg4HqtIDqtIDqs4TripQg65GQIOuzgOyImCDsgqzsnbTsnZgg6rSA6rOE7J2YIOuwqe2WpeqzvCDqsJXrj4Trp4zsnYQg64KY7YOA64K06riwIOuVjOusuOyXkCwg7J246rO86rSA6rOE7J2YIOyhtOyerCDsl6zrtoDsmYAg6re4IOuwqe2WpeydhCDtmZXsoJXtlZjquLAg7JyE7ZW07ISc64qUIOyLpO2XmCDshKTqs4Trgpgg66ek7LmtLCDqs4Trn4nsoIHsnbggY2F1c2FsIGluZmVyZW5jZSDrsKnrspUg65Ox7J20IOyCrOyaqeuQmOyWtOyVvCDtlanri4jri6QuCgpcClwKCiMjIOyduOqzvOy2lOuhoChDYXVzYWwgaW5mZXJlbmNlKQoKXAoK7Iqk7Y+s7LigIOywuOyXrOyXrOu2gOyZgCDsiqTtj6zsuKAg7Jes6rCA7Zmc64+ZIO2drOunneyXrOu2gOqwhOydmCDslpHsnZgg7IOB6rSA6rSA6rOE6rCAIO2MjOyVheydtCDrkJjslrQsIOydtOulvCDquLDrsJjsnLzroZwg7J246rO87LaU66Gg7J2EIO2VmOqzoOyekCDtlanri4jri6QuIOyXsOq1rOydmCDrqqnsoIHsnYAg7Iqk7Y+s7LigIOywuOyXrOulvCDtlZwg7Jes67aA6rCAIOyKpO2PrOy4oCDsl6zqsIDtmZzrj5kg7Z2s66ed7ZWY64qUIOyXrOu2gOuhnCDsnbjqs7zsoIHsnLzroZwg7J207Ja07KeA64qU7KeAIOyVjOyVhOuztOuKlCDqsoPsnoXri4jri6QuIAoK7J2066W8IOychO2VtOyEnCBwcm9wZW5zaXR5IHNjb3JlIG1hdGNoaW5nKFBTTSkg67Cp67KV7Jy866GcIOyduOqzvOy2lOuhoOydhCDtlZjroKTqs6Ag7ZWp64uI64ukLiDsnbTripQg7J246rO86rSA6rOE66W8IOy2lOygle2VmOuKlCDrjbAg64SQ66asIOyCrOyaqeuQmOuKlCDrsKnrspUg7KSRIO2VmOuCmOuhnCwg6rSA7LCw65CcIOuNsOydtO2EsOyXkOyEnCDsnbjqs7ztmqjqs7zrpbwg7LaU7KCV7ZWY66Ck64qUIOyLnOuPhOulvCDshKTrqoXtlanri4jri6QuIOydtCDrsKnrspXsnZgg7ZW17Ius7J2ALCBjb250cm9sIOq3uOujuSjsiqTtj6zsuKDrpbwg7LC47Jes7ZWY7KeAIOyViuydgCDsnbTrk6Qp6rO8IHRyZWF0ZWQg6re466O5KOyKpO2PrOy4oOulvCDssLjsl6ztlZwg7J2065OkKeqwhOydmCDtmLzrj5nrs4DsiJgoY29uZm91bmRpbmcgdmFyaWFibGUpIOywqOydtOulvCDspITsnbTripQg642wIOyCrOyaqeuQmOupsCwg7J2064qUIOyduOqzvOy2lOuhoOydhCDsmZzqs6HtlaAg7IiYIOyeiOuKlCDtmLzrj5nrs4DsiJjsnZgg7JiB7Zal7J2EIOygnOqxsO2VmOuKlCDrjbAg64+E7JuA7J20IOuQqeuLiOuLpC4KClwKCuuLpOyLnCDrp5DtlbQsIOyKpO2PrOy4oCDssLjsl6zsl6zrtoDsmYAg7Iqk7Y+s7LigIOyXrOqwgO2ZnOuPmSDtnazrp53sl6zrtoDqsITsnZgg7J246rO86rSA6rOE66W8IOy2lOuhoO2VmOugpOuptCwg65GQIOuzgOyImCDqsITsnZgg6rSA6rOE7JeQIOyYge2WpeydhCDspIQg7IiYIOyeiOuKlCDtmLzrj5nrs4DsiJjrk6TsnYQg6rOg66Ck7ZWY7JesIOunpOy5reydhCDtlbTslbztlanri4jri6QuIO2VtOuLuSDsl7Dqtawg66qp7ZGc7JmAIOq0gOugqO2VmOyXrCDri6TsnYwg67OA7IiY65Ok7J2EIO2YvOuPmeuzgOyImOuTpOuhnCDqs6DroKTtlbTrs7wg7IiYIOyeiOyKteuLiOuLpDoKCi0gKipxMzkgfiBxNDRfMSjsnZHri7XsnpDsnZgg7J246rWs7Ya16rOE7ZWZ7KCBIO2KueyEsSkqKjog7J2R64u17J6Q7J2YIOyEseuzhCwg7Jew66C5LCDtlZnroKUg65Ox7J2AIOyKpO2PrOy4oCDssLjsl6zsmYAg7Leo66+4IO2ZnOuPmeydmCDsnZjsgqwg6rKw7KCV7JeQIOyYge2WpeydhCDrr7jsuaAg7IiYIOyeiOuKlCDtlbXsi6wg7JqU7J247J6F64uI64ukLgotICoqcTQ1LCBxNDlfMSjqsr3soJzsoIEg7ZmY6rK9KSoqOiDsnZHri7XsnpDsnZgg6rK97KCc7KCBIO2ZmOqyveydgCDsiqTtj6zsuKAg7LC47Jes7JeQIO2VhOyalO2VnCDsnqzsoJXsoIEg7JqU7IaM66W8IOuwmOyYge2VmOyXrCwg7LC47JesIOydmOyCrOuCmCDtnazrp50g7Jes67aA7JmAIOq0gOugqOuQnCDspJHsmpTtlZwg7ISk66qFIOuzgOyImOuhnCDsnpHsmqntlaAg6rKD7J6F64uI64ukLgotICoqRE05LCBETTEwKOyngOyXreq3nOuqqCwg6raM7JetKSoqOiDqsbDso7wg7KeA7Jet7J2YIO2KueyEseydgCDsiqTtj6zsuKAg7Iuc7ISkIOygkeq3vOyEseqzvCDqtIDroKjsnbQg7J6I7J2EIOyImCDsnojsnLzrr4DroZwg7KSR7JqU7ZWcIOuzgOyImOuhnCDrs7wg7IiYIOyeiOyKteuLiOuLpC4KLSAqKnEyOCjsnbwv7ZWZ7JeF6rO8IOyXrOqwgOydmCDqt6DtmJUpKio6IOydvOqzvCDsl6zqsIDsnZgg6reg7ZiV7J20IOyWvOuniOuCmCDsnpgg7J2066Oo7Ja07KeA6rOgIOyeiOuKlOyngOuKlCDsiqTtj6zsuKAg7Zmc64+ZIOywuOyXrCDsl6zrtoDsl5Ag7JiB7Zal7J2EIOykhCDsiJgg7J6I7Iq164uI64ukLgotICoqcTM0KOuzuOyduOydmCDqsbTqsJXsg4Htg5wg7J247IudKSoqOiDqsbTqsJUg7IOB7YOc64qUIOyKpO2PrOy4oCDtmZzrj5kg7LC47JesIOyXrOu2gOyZgCDsp4HsoJHsoIHsnbgg6rSA66Co7J20IOyeiOydhCDsiJgg7J6I7Jy866+A66GcIOykkeyalO2VnCDrs4DsiJjroZwg6rOg66Ck65CgIOyImCDsnojsirXri4jri6QuCgpgYGB7cn0KIyMgRGF0YSBwcmVwcm9jZXNzaW5nCiMgKOydkeuLteyekOydmCDsnbjqtazthrXqs4QpCiMgcTM5OiDstZzsooXtlZnroKUKIyBxNDA6IO2YvOyduOyDge2DnAojIHE0MTog66eMIOuCmOydtAojIHE0Mzog6rCA6rWs7KO8IOyXrOu2gAojIHE0M18yOiDshLHrs4QKIyBxNDRfMTog7J6l7JWg65Ox66GdIOyXrOu2gAojICjqsr3soJzsoIEg7ZmY6rK9KQojIHE0NTog7KeA64KcIDHso7zqsIQg6rK97KCc7Zmc64+ZIOyXrOu2gAojIHE0OV8xOiDsm5Qg7Y+J6regIOyGjOuTnQojICjsp4Dsl60g67CPIOyngOyXrSDqt5zrqqgpCiMgRE05OiDsp4Dsl60g6rec66qoCiMgRE0xMDog6raM7JetCiMgKOydvC/tlZnsl4Xqs7wg7Jes6rCA7J2YIOq3oO2YlSkKIyBxMjg6IOydvCjtlZnsl4Up6rO8IOyXrOqwgOydmCDqt6DtmJUKIyAo67O47J247J2YIOqxtOqwleyDge2DnCDsnbjsi50pCiMgcTM0OiDrs7jsnbjsnZgg6rG06rCV7IOB7YOcIOyduOyLnQoKZGYyID0gREFUQVssIGMoIklEIiwgInEzOSIsICJxNDAiLCAicTQxIiwgInE0MyIsICJxNDNfMiIsICJxNDRfMSIsICJxNDUiLCAicTQ5XzEiLCAiRE05IiwgIkRNMTAiLCAicTI4IiwgInEzNCIpXQpkZjMgPSBtZXJnZShkZiwgZGYyLCBieSA9ICJJRCIpICAjIEpvaW5pbmcgdHdvIGRhdGFmcmFtZXMgb24gYSBtYXRjaGluZyBJRApkZjMgPSBkZjNbLCAtMV0gICMgTm8gbmVlZCBmb3IgIklEIiBjb2x1bW4gYW55bW9yZQpkZjNbXSA9IGxhcHBseShkZjMsIGFzLm51bWVyaWMpICAjIGJlY2F1c2UgdGhlIGRhdGEgd2FzIGluIHNwc3MgZm9ybQpkZjMkcTM5ID0gaWZlbHNlKGRmMyRxMzkgPD0gNCwgMCwgMSkgICMg6rOg7KG47J207ZWYOiAwIC8g64yA7KG47J207IOBOiAxCmRmMyRxNDAgPSBpZmVsc2UoZGYzJHE0MCA9PSAxLCAwLCAxKSAgIyDrr7jtmLw6IDAgLyDquLDtmLwsIOyCrOuzhCwg7J207Zi8IOuTsTogMQpkZjMkcTQ0XzEgPSBpZmVsc2UoZGYzJHE0NF8xID09IDEsIDAsIDEpICAjIOyXhuydjDogMCwg7J6l7JWgOiAxCmRmMyRxNDlfMSA9IGlmZWxzZShkZjMkcTQ5XzEgPD0gMywgMCwgMSkgICMgMjAw66eMIOuvuOunjDogMCwgMjAw66eMIOydtOyDgTogMQpkZjMkcTM0ID0gaWZlbHNlKGRmMyRxMzQgPD0gMywgMCwgaWZlbHNlKGRmMyRxMzQgPT0gNCwgMSwgMikpICAjIOuztO2GtSDsnbTtlZg6IDAsIOuztO2GtTogMSwg67O07Ya1IOydtOyDgTogMgpkZjMkcTI4ID0gaWZlbHNlKGRmMyRxMjggPD0gMywgMCwgaWZlbHNlKGRmMyRxMjggPT0gNCwgMSwgMikpICAjIOq3oO2YlSDsnbTtlZg6IDAsIOq3oO2YlTogMSwg6reg7ZiVIOydtOyDgTogMgojIENvbnZlcnQgYWxsIGNvbHVtbnMgZXhjZXB0IHRoZSBleGNsdWRlZCBvbmUgdG8gZmFjdG9ycwpkZjNbIWNvbG5hbWVzKGRmMykgJWluJSBjKCJxNDEiKV0gPSBsYXBwbHkoZGYzWyFjb2xuYW1lcyhkZjMpICVpbiUgYygicTQxIildLCBhcy5mYWN0b3IpCmBgYAoKYGBge3J9CmRmMwpgYGAKCmBgYHtyfQpzZXQuc2VlZCgwKQoKIyMgRXN0aW1hdGUgUHJvcGVuc2l0eSBTY29yZXM6CiMgV2UgZmlyc3QgZXN0aW1hdGUgdGhlIHByb3BlbnNpdHkgc2NvcmVzIGZvciB0aGUgImhhdmUiIHZhcmlhYmxlLCBiYXNlZCBvbiB0aGUgY292YXJpYXRlcyB3ZSB3YW50IHRvIGNvbnRyb2wgZm9yLiBUaGlzIGludm9sdmVzIGZpdHRpbmcgYSBsb2dpc3RpYyByZWdyZXNzaW9uIG1vZGVsIHByZWRpY3RpbmcgImhhdmUiIGZyb20gdGhlIGNvdmFyaWF0ZXMuCgojIyBNYXRjaGluZwojIG1hdGNoaXQoKSB3aWxsIHBlcmZvcm0gbmVhcmVzdCBuZWlnaGJvciBtYXRjaGluZywgYnV0IHRoZXJlIGFyZSBtYW55IG90aGVyIG1ldGhvZHMgYXZhaWxhYmxlIGluIE1hdGNoSXQuIFRoZSByZXN1bHQgb2YgdGhlIG1hdGNoIHdpbGwgYmUgc3RvcmVkIGluIG0ub3V0LgoKYWxsX3ZhcnMgPSBzZXRkaWZmKG5hbWVzKGRmMyksIGMoImhhdmUiLCAid291bGQiKSkKZm9ybXVsYSA9IGFzLmZvcm11bGEocGFzdGUoImhhdmUgfiIsIHBhc3RlKGFsbF92YXJzLCBjb2xsYXBzZSA9ICIgKyAiKSkpCm0ub3V0ID0gbWF0Y2hpdChmb3JtdWxhLCBkYXRhID0gZGYzLCBtZXRob2QgPSAib3B0aW1hbCIpCmBgYAoKYGBge3J9CiMjIEFzc2Vzc2luZyBiYWxhbmNlCiMgQmVmb3JlIGNvbmR1Y3RpbmcgdGhlIGNhdXNhbCBpbmZlcmVuY2UgYW5hbHlzaXMsIHdlIHNob3VsZCBhc3Nlc3Mgd2hldGhlciBtYXRjaGluZyBoYXMgaW1wcm92ZWQgdGhlIGJhbGFuY2Ugb2YgdGhlIGNvdmFyaWF0ZXMgYWNyb3NzIHRoZSB0cmVhdGVkIGFuZCBjb250cm9sIGdyb3Vwcy4KbG92ZS5wbG90KG0ub3V0LCBhYnMgPSBUUlVFLCBiaW5hcnkgPSAic3RkIiwgdGhyZXNob2xkID0gMC4xNSwgbGltaXRzID0gYygwLCAxKSwgcG9zaXRpb24gPSAidG9wIiwgZHJvcC5kaXN0YW5jZSA9IFRSVUUpCmBgYAoKXAoKUHJvcGVuc2l0eSBTY29yZSBNYXRjaGluZyhQU00p7JeQ7IScIOq3oO2YlSDtj4nqsIAoYXNzZXNzaW5nIGJhbGFuY2Up66W8IO2VmOuKlCDrqqnsoIHsnYAg7LKY66asIOq3uOujueqzvCDrjIDsobAg6re466O5IOqwhOydmCDtmLzrj5nrs4DsiJjqsIAg67mE7Iq37ZWY6rKMIOu2hO2PrOuQmOyWtCDsnojripTsp4Ag7ZmV7J247ZWY6riwIOychO2VqOyeheuLiOuLpC4g7J2064qUIOq0gOywsCDsl7Dqtazsl5DshJwg7LKY66asIO2aqOqzvOulvCDstpTsoJXtlaAg65WMIO2YvOuPmeuzgOyImOuhnCDsnbjtlZwg7Y647Zal7J2EIOykhOydtOq4sCDsnITtlZwg7KSR7JqU7ZWcIOuLqOqzhOyeheuLiOuLpC4KCuq3oO2YlSDtj4nqsIDsl5DshJwg7ZmV7J247ZW07JW8IO2VoCDso7zsmpQg7JqU7IaM64qUIOuLpOydjOqzvCDqsJnsirXri4jri6Q6CgotICoq7ZGc7KSA7ZmUIO2Pieq3oCDssKjsnbQoU3RhbmRhcmRpemVkIE1lYW4gRGlmZmVyZW5jZXMsIFNNRCkqKjog7LKY66asIOq3uOujueqzvCDrjIDsobAg6re466O5IOqwhOydmCDtmLzrj5nrs4DsiJjsnZgg7ZGc7KSA7ZmU65CcIO2Pieq3oCDssKjsnbTrpbwg6rOE7IKw7ZWp64uI64ukLiDsnbQg6rCS7J20IDDsl5Ag6rCA6rmM7Jq47IiY66GdIO2YvOuPmeuzgOyImOqwgCDrkZAg6re466O5IOqwhOyXkCDsnpgg6reg7ZiV65CY7Ja0IOyeiOuLpOuKlCDqsoPsnYQg64KY7YOA64OF64uI64ukLgotICoq7J6E6rOE6rCSKFRocmVzaG9sZCkqKjog7J2867CY7KCB7Jy866GcIFNNROydmCDsoIjrjIDqsJLsnbQgMC4xIOuYkOuKlCAwLjE1IOuvuOunjOydtOuptCDqt6DtmJXsnbQg7J6YIOuQmOyXiOuLpOqzoCDtjJDri6jtlanri4jri6QuIOydtCDsnoTqs4TqsJLsnYQg7LSI6rO87ZWY66m0IO2VtOuLuSDtmLzrj5nrs4DsiJjripQg65GQIOq3uOujuSDqsITsl5Ag7LCo7J206rCAIOyeiOuLpOqzoCDtjJDri6jrkKnri4jri6QuCi0gKirqt6DtmJUg6re4656Y7ZSEKEJhbGFuY2UgUGxvdCkqKjogTG92ZShUaG9tYXMgTG92ZSkgcGxvdOqzvCDqsJnsnYAg6reg7ZiVIOq3uOuemO2UhOuKlCDsi5zqsIHsoIHsnLzroZwg7Zi864+Z67OA7IiY7J2YIOq3oO2YlSDsg4Htg5zrpbwg7ZmV7J247ZWgIOyImCDsnojripQg64+E6rWs7J6F64uI64ukLiDrp6Tsua0g7KCE7ZuE7J2YIFNNROulvCDruYTqtZDtlZjsl6wg66ek7Lmt7J2YIO2aqOqzvOulvCDtj4nqsIDtlaAg7IiYIOyeiOyKteuLiOuLpC4KCuunpOy5reydtCDsnpgg65CY7JeI64uk64qUIOqyg+ydgCDsspjrpqwg6re466O56rO8IOuMgOyhsCDqt7jro7kg6rCE7J2YIOqzteuzgOufieydtCDruYTsirftlZjqsowg67aE7Y+s65CY7Ja0IOyeiOycvOupsCwg7Zi864+ZIO2aqOqzvOulvCDstZzshoztmZTtlZjsl6wg7LKY66as7J2YIOyduOqzvCDtmqjqs7zrpbwg67O064ukIOygle2Zle2VmOqyjCDstpTsoJXtlaAg7IiYIOyeiOuLpOuKlCDqsoPsnYQg7J2Y66+47ZWp64uI64ukLgoK7JyEIOq3uOumvOydhCDrs7TrqbQg7KGw7KCVIO2bhCDsoIjrsJgg7KCV64+E66eMIO2YvOuPmeuzgOyImOqwgCDsnoTqs4TqsJIg64K07JeQIOyeiOqzoCwg7J2064qUIOq3oO2YleydtCDsnbTro6jslrTsoYzri6TripQg7Kad6rGw64qUIOuQmOyngCDrqrvtlanri4jri6QuCgpcCgpgYGB7cn0KIyMgQ2F1c2FsIGluZmVyZW5jZQojIEFmdGVyIG1hdGNoaW5nLCB3ZSBjYW4gYW5hbHl6ZSB0aGUgZWZmZWN0IG9mICJoYXZlIiBvbiAid291bGQiIGJ5IGZpdHRpbmcgYSBtb2RlbCB0byB0aGUgbWF0Y2hlZCBkYXRhLgoKbWF0Y2hlZF9kYXRhID0gbWF0Y2guZGF0YShtLm91dCkKY2F1c2FsX21vZGVsID0gZ2xtKHdvdWxkIH4gaGF2ZSwgZGF0YSA9IG1hdGNoZWRfZGF0YSwgZmFtaWx5ID0gYmlub21pYWwpCnN1bW1hcnkoY2F1c2FsX21vZGVsKQpgYGAKClwKCi0gKirsiqTtj6zsuKAg7LC47Jes7Jes67aA7J2YIOyKpO2PrOy4oCDsl6zqsIDtmZzrj5kg7Z2s66ed7Jes67aA7JeQIOuMgO2VnCDsnbjqs7wg7Zqo6rO8Kio6ICJoYXZlIijsiqTtj6zsuKAg7LC47Jes7Jes67aAKeydmCDqs4TsiJjripQgMy4wMDbsnLzroZwsIOydtCDqsJLsnZgg7KeA7IiY64qUICJoYXZlIuqwgCDsnojsnYQg65WM7JmAIOyXhuydhCDrlYwgIndvdWxkIijsiqTtj6zsuKAg7Jes6rCA7Zmc64+ZIO2drOunneyXrOu2gCnsnZgg7Jik7KaI67mEKG9kZHMgcmF0aW8p7J6F64uI64ukLiDsnbQg7JaR7J2YIOqwkuydgCAiaGF2ZSLsnZgg7KG07J6s6rCAICJ3b3VsZCLsnZgg6rCA64ql7ISx7J2EIO2BrOqyjCDspp3qsIDsi5ztgqjri6TripQg6rKD7J2EIOuCmO2DgOuDheuLiOuLpC4g66ek7LmtIOqzvOygleydtCDtmLzrj5kg67OA7IiY66W8IOyEseqzteyggeycvOuhnCDthrXsoJztlojri6TrqbQsIOydtOqyg+ydgCDsnbjqs7wg6rSA6rOE7J2YIOymneqxsOuhnCDtlbTshJ3rkKAg7IiYIOyeiOyKteuLiOuLpC4KCi0gKirthrXqs4TsoIEg7Jyg7J2Y7ISxKio6ICJoYXZlIuydmCDrp6TsmrAg64Ku7J2AIHAg6rCS7J2AIO2aqOqzvOqwgCDthrXqs4TsoIHsnLzroZwg7Jyg7J2Y7ZWY64uk64qUIOqyg+ydhCDrgpjtg4Drg4Xri4jri6QuIOydtOuKlCAiaGF2ZSLqsIAgIndvdWxkIuyXkCDsnbjqs7zsoIEg7JiB7Zal7J2EIOuvuOy5oCDsiJgg7J6I64uk64qUIOyDneqwgeydhCDrjZTsmrEg7KeA7KeA7ZWp64uI64ukLgoKLSAqKuuqqOuNuCDsoIHtlanshLHqs7wgQUlDKio6IOu2hOyCsOydmCDqsJDshozsmYAgQUlDIOqwkuydgCDrqqjrjbgg7KCB7ZWp7ISx7J2YIOyngO2RnOydvCDsiJgg7J6I7Iq164uI64ukLiDsnbTqsoPrk6TsnYAg7J2867CY7KCB7Jy866GcIOyYiOy4oSDshLHriqXqs7wg642UIOq0gOugqOydtCDsnojsp4Drp4wsIOyemCDsoIHtlanrkJwg66qo64247J2AIOyduOqzvOyggSDtlbTshJ3sl5Ag64yA7ZWcIO2ZleyLoOydhCDrjZTtlaAg7IiYIOyeiOyKteuLiOuLpC4gTnVsbCBkZXZpYW5jZeuKlCDrs4DsiJjrpbwg64Sj7KeAIOyViuyVmOydhCDrlYwsIFJlc2lkdWFsIGRldmlhbmNl64qUIOyEpOuqheuzgOyImOulvCDstpTqsIDtlZjsmIDsnYQg65WM7J2YIOu2hOyCsOyeheuLiOuLpC4g7ISk66qF67OA7IiY66W8IOy2lOqwgO2VnCDtm4Qg67aE7IKw7J20IOykgCDqsoPsnYQg67O066m0IOyemCDsoIHtlanrkJwg66qo64247J2065286rOgIO2VoCDsiJgg7J6I7Iq164uI64ukLgoKLSAqKuqwgOyglSoqOiDsnbjqs7wg7LaU66Gg7J2AIOunpOy5rSDqs7zsoJXsl5DshJwg66qo65OgIO2YvOuPmSDrs4DsiJjrpbwg7Ya17KCc7ZaI64uk64qUIOqwgOygleyXkCDsnZjsobTtlanri4jri6QuIOydtOulvCDsuKHsoJXrkJjsp4Ag7JWK7J2AIO2YvOuPmSDrs4DsiJjqsIAg7JeG64uk64qUIOqwgOygleydtOudvOqzoOuPhCDtlanri4jri6QuIOydtCDqsIDsoJXsnbQg7Jyg7Zqo7ZWY64uk66m0LCDrp6Tsua0g6rO87KCV7J2AIOu5hOq1kCDqsIDriqXtlZwg6re466O57J2EIOyDneyEse2VmOuvgOuhnCDsnbjqs7zsoIEg7ZW07ISd7J20IOqwgOuKpe2VqeuLiOuLpC4g7ZWY7KeA66eMLCBsb3ZlIHBsb3TsnYQg6re466awIOqysOqzvCDrqqjrk6Ag7Zi864+ZIOuzgOyImOqwgCDthrXsoJzrkJjsl4jri6TripQg6rCA7KCV7J2AIOydtOujqOyWtOyhjOuLpOqzoCDtlZjquLAg7Ja066C17Iq164uI64ukLgoKXApcCgojIyDqsrDroaAKClwKCuyalOyVve2VmOuptCwg6rKw6rO864qUICoq7Iqk7Y+s7LigIOywuOyXrOyXrOu2gCoq7JmAICoq7Iqk7Y+s7LigIOyXrOqwgO2ZnOuPmSDtnazrp53sl6zrtoAqKiDsgqzsnbTsnZgg6rCV7ZWcIOyXsOq0gOyEseydhCDrgpjtg4Drgqzsp4Drp4wsIOunpOy5rSDqs7zsoJXsnbQg6rSA66CoICoq7Zi864+ZIOuzgOyImOulvCDrqqjrkZAg6reg7ZiV7Iuc7YKk64qUIOuNsCDshLHqs7XtlZjsp4Ag66q77ZWY7JiA7Iq164uI64ukKiouIOunjOyVvSwgKirsnbjqs7zstpTroaDsnYQg7JyE7ZWcIOqwgOygleydtCDsnKDtmqjtlZjri6TrqbQg7J246rO87Zqo6rO866GcIO2VtOyEnSoq65CgIOyImCDsnojsirXri4jri6QuCgpcCgpQcm9wZW5zaXR5IHNjb3JlIG1hdGNoaW5n7J2EIOyCrOyaqe2VnCDsg4Htmansl5DshJwg7Zi864+ZIOuzgOyImOulvCDrqqjrkZAg6reg7ZiV7Iuc7YKk7KeAIOuqu+2WiOuLpOuptCwg64uk7J2M6rO8IOqwmeydgCDsobDsuZjrpbwg7Leo7ZW0IOuzvCDsiJgg7J6I7Iq164uI64ukOgoKLSAqKuuLpOuluCDrp6Tsua0g6riw67KVIOyggeyaqSoqOiDtlITroZztjpzsi5zti7Ag7Iqk7L2U7Ja0IOunpOy5rSDsmbjsl5Drj4Qg64uk7JaR7ZWcIOunpOy5rSDquLDrspXsnbQg7J6I7Jy866+A66GcLCDqt7gg7KSRIOydvOu2gOulvCDsoIHsmqntlbQg67O8IOyImCDsnojsirXri4jri6QuIOyYiOulvCDrk6TslrQsIOy1nOyggSDrp6Tsua0ob3B0aW1hbCBtYXRjaGluZyksIOy7pOuEkCDrp6Tsua0oa2VybmVsIG1hdGNoaW5nKSwgTWFoYWxhbm9iaXMg6rGw66asIOunpOy5rSDrk7HsnYQg7IKs7Jqp7ZW0IOuzvCDsiJgg7J6I7Iq164uI64ukLiDrmJDtlZwg66ek7LmtIOuwqeuyleydmCDshLjrtoAg7YyM652866+47YSw66W8IOyhsOygle2VtCDrs7TripQg6rKD64+EIOuwqeuyleyeheuLiOuLpC4KLSAqKu2ajOq3gCDrtoTshJ0g7IKs7JqpKio6IOunpOy5rSDtm4Tsl5Drj4Qg7Zi864+ZIOuzgOyImOydmCDqt6DtmJXsnbQg66ee7KeAIOyViuuKlOuLpOuptCwg7ZqM6reAIOuqqOuNuOydhCDsgqzsmqntlZjsl6wg7Zi864+ZIOuzgOyImOulvCDsobDsoJXtlaAg7IiYIOyeiOyKteuLiOuLpC4g7ZqM6reAIOu2hOyEneydhCDthrXtlbQg7Zi864+ZIOuzgOyImOydmCDsmIHtlqXsnYQg7KCc7Ja07ZWY66m07IScIO2aqOqzvOulvCDstpTsoJXtlaAg7IiYIOyeiOyKteuLiOuLpC4KLSAqKuuNsOydtO2EsCDsnqzqsoDthqAqKjog7Zi864+ZIOuzgOyImOqwgCDqt6DtmJXrkJjsp4Ag7JWK7JWY64uk66m0LCDsgqzsmqnrkJwg642w7J207YSw7JeQIOusuOygnOqwgCDsnojsnYQg7IiY64+EIOyeiOyKteuLiOuLpC4g642w7J207YSwIOyghOyymOumrCDqs7zsoJUsIOqysOy4oey5mCDsspjrpqwsIOuzgOyImCDshKDtg50g65Ox7J2EIOuLpOyLnCDqsoDthqDtlbQg67O064qUIOqyg+ydtCDtlYTsmpTtlaAg7IiYIOyeiOyKteuLiOuLpC4KLSAqKuu2hOyEnSDrsKnrspUg67OA6rK9Kio6IOunpOy5rSDquLDrspUg7J6Q7LK06rCAIOyggeygiO2VmOyngCDslYrsnYQg7IiY64+EIOyeiOycvOuvgOuhnCwg64uk66W4IOyduOqzvOy2lOuhoCDrsKnrspXsnYQg6rOg66Ck7ZW0IOuzvCDsiJgg7J6I7Iq164uI64ukLiDrj4Tqtawg67OA7IiYIOq4sOuylShpbnN0cnVtZW50YWwgdmFyaWFibGUpLCDspJHssqkg66Gc7KeA7Iqk7YuxIO2ajOq3gChjb25kaXRpb25hbCBsb2dpc3RpYyByZWdyZXNzaW9uKSDrk7Eg64uk66W4IOy2lOuhoCDrsKnrspXsnYQg7YOQ7IOJ7ZW0IOuzvCDsiJgg7J6I7Iq164uI64ukLgotICoq7Y647Zal7J2YIOy2nOyymCDtg5Dsg4kqKjog7Zi864+ZIOuzgOyImOqwgCDqt6DtmJXrkJjsp4Ag7JWK64qUIOybkOyduOydhCDtjIzslYXtlZjroKTrqbQsIO2OuO2WpeydtCDrsJzsg53tlZwg7JuQ7J247J2EIOu2hOyEne2VtOyVvCDtlaAg7IiY64+EIOyeiOyKteuLiOuLpC4g7J2066W8IO2Gte2VtCDtjrjtlqXsnYQg7KSE7J206rGw64KYIOuztOygle2VoCDsiJgg7J6I64qUIOuwqeuyleydhCDssL7snYQg7IiYIOyeiOyKteuLiOuLpC4KClwKXAoKCg==